package com.zhiwen.base;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTextMessage;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;

/**
 * @Auther: wuzhiwen
 * @Date: 2019/2/12 12:41
 * @Description:
 */
public class ProductMessage {

    /**
     * 生产消息
     */
    public static void sendMessage() throws JMSException {
        //1、创建 ActiveMQ 连接，设置 brokerURL
        ConnectionFactory connectionFactory =
                new ActiveMQConnectionFactory("tcp://192.168.91.129:61617");

        //2、创建 JMS 连接
        Connection connection = connectionFactory.createConnection();

        //3、创建会话 Session（参数一 transacted：是否是事务  参数二：自动确认）
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        /**
         * 4、创建消息目的:
         * 第一种 Queue：点对点消息
         * 第二种 Topic：广播式消息
         */
        Destination destination = session.createQueue("test");

        //5、创建消息生产者
        MessageProducer messageProducer = session.createProducer(destination);

        //6、创建消息 - 文本消息
        ActiveMQTextMessage message = new ActiveMQTextMessage();
        message.setText("how are you?");
        //7、发送文本消息
        messageProducer.send(message);

        //8、关闭消息发送者、Session、Connection
        messageProducer.close();
        session.close();
        connection.close();
    }
}
